import strip from 'strip-comments';
import { replaceConditionByLabel, removeExcessSign } from './helpers';

const fontTextPattern = /"(\\u[a-z0-9]+)/g;
const subpackgesPattern = /"subPackages"/;

// 执行移除注释等操作
export function normalizePagesJson(data) {
  // 处理条件编译注释
  data = replaceConditionByLabel(data);
  // 移除其他注释及空格
  data = strip(data).replace(/\s+/g, '');
  // 移除处理条件编译那一步生成的多余的符号
  data = removeExcessSign(data);
  // 主要处理 buttons 中的 text 字符，'\ue123' 应当转换为 '\\ue123'，否则会被转义进而丢失字符串信息。
  data = data.replace(fontTextPattern, `"\\$1`);
  // 使用 subpackages 规范
  data = data.replace(subpackgesPattern, '"subpackages"');

  return JSON.parse(data);
}
